home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / kernel / sig / sig.h < prev    next >
C/C++ Source or Header  |  1992-12-18  |  3KB  |  114 lines

  1. /*
  2.  * sig.h --
  3.  *
  4.  *     Data structures and procedure headers exported by the
  5.  *     the signal module.
  6.  *
  7.  * Copyright (C) 1985 Regents of the University of California
  8.  * All rights reserved.
  9.  *
  10.  *
  11.  * $Header: /cdrom/src/kernel/Cvsroot/kernel/sig/sig.h,v 9.7 92/01/06 15:16:18 kupfer Exp $ SPRITE (Berkeley)
  12.  */
  13.  
  14. #ifndef _SIG
  15. #define _SIG
  16.  
  17. #ifdef KERNEL
  18. #include <sigTypes.h>
  19. #include <rpc.h>
  20. #include <procTypes.h>
  21. #include <procMigrate.h>
  22. #else
  23. #include <kernel/sigTypes.h>
  24. #include <kernel/rpc.h>
  25. #include <kernel/procTypes.h>
  26. #include <kernel/procMigrate.h>
  27. #endif
  28.  
  29. /*
  30.  *----------------------------------------------------------------------
  31.  *
  32.  * Sig_Pending --
  33.  *
  34.  *    Determine whether there are pending signals for a process.  This
  35.  *    routine does not impose any synchronization.
  36.  *
  37.  * Results:
  38.  *    Returns a bit mask with bits enabled for pending signals.  If no 
  39.  *    signals are pending, returns zero.
  40.  *
  41.  * Side effects:
  42.  *    None.
  43.  *
  44.  *----------------------------------------------------------------------
  45.  */
  46. #define Sig_Pending(procPtr) \
  47.     ((procPtr)->sigPendingMask & ~((procPtr)->sigHoldMask))
  48.  
  49. /*
  50.  *----------------------------------------------------------------------
  51.  *
  52.  * Sig_NumberToMask --
  53.  *
  54.  *    Convert a Sprite signal number to a bit mask (cf Sig_Pending).
  55.  *
  56.  * Results:
  57.  *    Returns a bit mask with a single bit enabled corresponding to the 
  58.  *    given signal number.
  59.  *
  60.  * Side effects:
  61.  *    None.
  62.  *
  63.  *----------------------------------------------------------------------
  64.  */
  65.  
  66. #define    Sig_NumberToMask(sig) (1 << ((sig) - 1))
  67.  
  68. #ifdef KERNEL
  69.  
  70. extern ReturnStatus Sig_Send _ARGS_((int sigNum, int code, Proc_PID id, 
  71.         Boolean familyID, Address addr));
  72. extern ReturnStatus Sig_SendProc _ARGS_((Proc_ControlBlock *procPtr, 
  73.         int sigNum, int code, Address addr));
  74. extern ReturnStatus Sig_UserSend _ARGS_((int sigNum, Proc_PID pid, 
  75.         Boolean familyID));
  76. extern ReturnStatus Sig_SetHoldMask _ARGS_((int newMask, int *oldMaskPtr));
  77. extern ReturnStatus Sig_SetAction _ARGS_((int sigNum, Sig_Action *newActionPtr,
  78.         Sig_Action *oldActionPtr));
  79. extern ReturnStatus Sig_Pause _ARGS_((int sigHoldMask));
  80.  
  81. extern void Sig_Init _ARGS_((void));
  82. extern void Sig_ProcInit _ARGS_((Proc_ControlBlock *procPtr));
  83. extern void Sig_Fork _ARGS_((Proc_ControlBlock *parProcPtr, 
  84.         Proc_ControlBlock *childProcPtr));
  85. extern void Sig_Exec _ARGS_((Proc_ControlBlock *procPtr));
  86. extern void Sig_ChangeState _ARGS_((Proc_ControlBlock *procPtr, 
  87.         int actions[], int sigMasks[], int pendingMask, int sigCodes[],
  88.         int holdMask));
  89. extern Boolean Sig_Handle _ARGS_((Proc_ControlBlock *procPtr, 
  90.         Sig_Stack *sigStackPtr, Address *pcPtr));
  91. extern void Sig_CheckForKill _ARGS_((Proc_ControlBlock *procPtr));
  92. extern void Sig_Return _ARGS_((Proc_ControlBlock *procPtr, 
  93.         Sig_Stack *sigStackPtr));
  94.  
  95. extern ReturnStatus Sig_RpcSend _ARGS_((ClientData srvToken, int clientID,
  96.             int command, Rpc_Storage *storagePtr));
  97.  
  98. /*
  99.  * Procedures to support process migration.
  100.  */
  101.  
  102. extern ReturnStatus Sig_GetEncapSize _ARGS_((Proc_ControlBlock *procPtr, 
  103.             int hostID, Proc_EncapInfo *infoPtr));
  104. extern ReturnStatus Sig_EncapState _ARGS_((Proc_ControlBlock *procPtr, 
  105.             int hostID, Proc_EncapInfo *infoPtr, Address bufPtr));
  106. extern ReturnStatus Sig_DeencapState _ARGS_((Proc_ControlBlock *procPtr, 
  107.             Proc_EncapInfo *infoPtr, Address bufPtr));
  108. extern void Sig_AllowMigration _ARGS_((Proc_ControlBlock *procPtr));
  109.  
  110. #endif /* KERNEL */
  111.  
  112. #endif /* _SIG */
  113.  
  114.